function odinMsg(str) {
	$.blockUI({
		message: '<h1>' + str + '</h1>',
		fadeIn: 100,
		fadeOut: 400,
		timeout: 2000,
		showOverlay: true,
		centerY: false,
		css: {
			width: '450px',
			top: '60px',
			left: '50px',
			right: '',
			border: 'none',
			padding: '5px',
			backgroundColor: '#000',
			'-webkit-border-radius': '10px',
			'-moz-border-radius': '10px',
			opacity: .8,
			color: '#fff'
		}
	});
}

function odinOkValidation(x, y) {
	$("#odin_ok_validation")
		.css("top",(x) + "px")
		.css("left",(y) + "px")
		.fadeIn("slow").fadeOut("slow");
}

function checkFieldErrorMessages(nombreComando,campo){
    // Ret Validate message. Only the selected rules
	var val = eval($("#"+nombreComando+"ValangValidator").get(0).innerHTML);
	val._clearErrorIfExists(campo);
	var allErrorMessages = '';
	for (var i=0; i<val.rules.length; i++){
		if (val.rules[i].field==campo){
           	val.rules[i].form = val.form;
           	if (!val.rules[i].validate()) {
				allErrorMessages += val.rules[i].getErrorMessage();
            }
		}
	}
    return allErrorMessages;
}

function checkField(nombreComando,campo){
	var result = false;
	var saveGlobalErrors;
	var errorBox = $("#"+globalErrorsId).get(0);
    if (errorBox != null) {
    	saveGlobalErrors = errorBox.innerHTML;
    }
    // Validate only the selected rules
	var val = eval($("#"+nombreComando+"ValangValidator").get(0).innerHTML);
	val._clearErrorIfExists(campo);
	var failedRules = new Array();
	for (var i=0; i<val.rules.length; i++){
		if (val.rules[i].field==campo){
           	val.rules[i].form = val.form;
           	if (!val.rules[i].validate()) {
                failedRules.push(val.rules[i]);
               }
		}
	}
	//Show the errors
	if (failedRules.length > 0) {
		var text = '';
		for (var i = 0; i < failedRules.length; i++) {
			text += failedRules[i].getErrorMessage();
		}
		mostrarErrores(campo,text);
		result = false;
	} else {
		quitarErrores(campo);
		result = true;
	}
    if (errorBox != null) {
    	// Keep current global errors
        errorBox.innerHTML = saveGlobalErrors;
    }
    return result;
}

function mostrarErrores(campo, errores){
	var campoEscaped = escapeJQuery(campo);

	$('#'+campoEscaped).bt(errores, {
		trigger:	['focus', 'blur'],
		positions:	['top'],
		overlap:	3,
		fill:		'#ffffcc'
	});
	$('#'+campoEscaped).addClass("error");
}

function quitarErrores(campo){
	var campoEscaped = escapeJQuery(campo);

	$('#'+campoEscaped).bt({trigger:['none']});
	$('#'+campoEscaped).removeClass("error");
}

function ocultarMostrar(idCapa,enlace){
	if (enlace.className=='enlaceMostrar'){
		$("#"+idCapa).slideDown('slow');
		enlace.className='enlaceOcultar';
	} else {
		$("#"+idCapa).slideUp('fast');
		enlace.className='enlaceMostrar';
	}
}

// fix para servicios a comercios de thor por necesitar mas de una table en el mismo jsp
// es necesario identificar el boton con un nombre unico (El nombre de la tabla)
function activarMenusTablaConID(tabla_id){
	$("#"+tabla_id+" tr[id*='row']").each(function (i) {
		$('#'+this.id).menu({
			content: $('#menu_bean_'+this.id.replace('row'+tabla_id,tabla_id+'_' )).html(),
			flyOut: true,
			showSpeed: 0,
			positionOpts: {
				posX: 'mouse',
				posY: 'mouse',
				directionH: 'right',
				directionV: 'down',
				detectH: true,
				detectV: true
			}
		});
	});
	activarEstilosTabla(tabla_id);
}
//fixs tablas con filas con y sin menu
function activarMenusTabla(tabla_id){
	$("#"+tabla_id+" tr[id*='row']").each(function (i) {
		var item = $('#menu_bean_'+this.id.replace('row', ''));
		if(item.length > 0)
			$('#'+this.id).menu({
				content: $('#menu_bean_'+this.id.replace('row', '')).html(),
				flyOut: true,
				showSpeed: 0,
				positionOpts: {
					posX: 'mouse', 
					posY: 'mouse',
					directionH: 'right',
					directionV: 'down', 
					detectH: true,
					detectV: true
				}
			});
	});
	activarEstilosTabla(tabla_id);
}


function activarEstilosTabla(tabla_id){
	$("#"+tabla_id+" tr").each( function() {
        var row = $(this);
        row.hover(
                function() {
                        setTimeout( function() {row.addClass('rowMouseOver'); }, 0 );
                },
                function() {
                        setTimeout( function() {row.removeClass('rowMouseOver'); }, 0 );
                }
        );
	});
}

function mostrarErroresFormulario(){
    $(".capaValidacionesGenerales .errors").each(function() {
        $(this.parentNode.parentNode).removeClass('ocultar');
    });
}

function ocultarMostrarTodos(enlaceTodos){

	var elems = $("a[id^='h3']");

	if(enlaceTodos.className == 'mostrarGrande'){
		enlaceTodos.className = 'ocultarGrande';
	}else {
		enlaceTodos.className ='mostrarGrande';
	}
	
	elems.each (function (contador, elem){
		var name = elem.id.replace('h3', '');
		var firstChar = name.substring(0, 1).toLowerCase()
		var idCapa = firstChar+name.substring(1, name.length+1 );
		var enlace = $('#'+elem.id).get(0);
		
		if(enlaceTodos.className == 'mostrarGrande'){
			$("#"+idCapa).slideUp('fast');
			enlace.className = 'enlaceMostrar'
		}else{
			$("#"+idCapa).slideDown('slow');
			enlace.className = 'enlaceOcultar';
		}
	});
}
